package com.foxire.interface3;

public class Test {
    public static void main(String[] args) {
        // 目标：接口小案例
        // 1.定义学生类，创建学生对象，封装学生数据，才能交给别人处理学生的数据。
        // 2.准备学生数据
        Student[] all = new Student[]{
                new Student("张三", '男', 100),
                new Student("李四", '女', 90),
                new Student("王五", '男', 80),
                new Student("赵六", '女', 70),
                new Student("田七", '男', 60),
                new Student("孙八", '女', 50),
                new Student("周九", '男', 40),
                new Student("吴十", '女', 30),
                new Student("郑十一", '男', 20),
                new Student("王十二", '女', 10),
        };

        // 3.提供两套业务实现方案，支持灵活切换（解耦合），面向接口编程
        // --定义一个接口(规范思想):必须完成打印全班学生信息，打印平均分。
        // --定义第一套实现类，实现接口:实现打印学生信息，实现打印平均分。
        // --定义第二套实现类，实现接口:实现打印学生信息(男女人数)，实现打印平均分(去掉最高分和最低分)。
        ClassDatainter cdi = new ClassDataInterImpl2(all);
        cdi.printAllStudentInfos();
        cdi.printAverageScore();
    }
}
